package com.sm42.goodsController;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.sm42.baseController.BaseCrmpController;
import com.sm42.common.http.AxiosResult;
import com.sm42.common.page.PageBean;
import com.sm42.goodsEntity.Product;
import com.sm42.goodsService.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("prod")
public class ProductController extends BaseCrmpController<Product> {
    @Autowired
    private ProductService productService;

    /**
     * 根据档案编号进行查询
     */
    @GetMapping("coding")
    public AxiosResult<List<Product>> findCoding(String productCoding) {
        return AxiosResult.success(productService.findProductCoding(productCoding));
    }

    /**
     * 根据产品型号进行查询
     */
    @GetMapping("type")
    public AxiosResult<List<Product>> findType(String productType) {
        return AxiosResult.success(productService.findProductType(productType));
    }

    /**
     * id查询
     */
    @GetMapping("findId")
    public AxiosResult<Product> findId(Long id) {
        return AxiosResult.success(productService.findId(id));
    }

    /**
     *查询所有
     */
//    @GetMapping("findAllList")
//    public AxiosResult<List<Product>> findAllList(int page,int pageInfo){
//        return AxiosResult.success(productService.findAllList( page,pageInfo));
//    }


    /**
     * 条件查询 根据 颜色  品牌  分类  产品型号  档案编码 分别查询
     */
//    @GetMapping("findProdList")
//    public AxiosResult<List<Product>> findProdList(Product product) {
//        return AxiosResult.success(productService.findProductList(product));
//    }
    /**
     * 模糊查询 根据 颜色  品牌  分类  产品型号  档案编码 同时查询
     */
    @GetMapping("findSearch")
    public AxiosResult findSearch(Product product,Integer pageSize,Integer pageNum){
        Page<Object> page = PageHelper.startPage(pageNum,pageSize);
        System.out.println(page);
        productService.findSearch(product);
        return AxiosResult.success(PageBean.initData(page.getTotal(),page.getResult()));
    }
    /**
     * 根据id删除
     */
    @GetMapping("deleteProduct")
    public AxiosResult deleteProduct(Long id){
        int row = productService.deleteById(id);
        return toAxios(row);
    }
    /**
     * 修改
     */
    @GetMapping("updateProduct")
    public AxiosResult updateProduct(Product product){
        int row = productService.updateProduct(product);
        return toAxios(row);
    }
    /**
     * 新增
     */
    @GetMapping("addProduct")
    public AxiosResult addProduct(Product product){
        int row = productService.addProduct(product);
        return toAxios(row);
    }
}
